自己写启动程序 自己写链接文件(linux下的.ld文件,Keil中的分散加载文件(.sct文件)) 内存分区(flash ram) Reset 您所在的位置:网站首页 ld 文件 自己写启动程序 自己写链接文件(linux下的.ld文件,Keil中的分散加载文件(.sct文件)) 内存分区(flash ram) Reset

自己写启动程序 自己写链接文件(linux下的.ld文件,Keil中的分散加载文件(.sct文件)) 内存分区(flash ram) Reset

2024-07-15 18:21| 来源: 网络整理| 查看: 265

连接脚本 xxxxxx.ld

这个描述文件叫做链接文件,如linux下的.ld文件,Keil中的分散加载文件(.sct文件)。

https://blog.csdn.net/xianjian1990/article/details/54293349?ops_request_misc=&request_id=&biz_id=102&utm_term=stm32%20%E4%BD%BF%E7%94%A8%20sct%E6%96%87%E4%BB%B6%E5%90%AF%E5%8A%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-4-54293349.142v68control,201v4add_ask,213v2t3_control1&spm=1018.2226.3001.4187

成功修改STM32启动程序(自定义的分散加载模式)

话说启动代码,没什么神秘的,往简单里说不外乎3个功能部分 1,做个AREA放置向量表,异常/中断跳转的地址表。 2,初始化SP的值,初始化内核的状态(比如工作在用户模式或超级模式,STM启动默认在高权限模式) 3,如果使用的是简单的分散加载,IMAGE(映像文件)也就由1个RO,1个RW,1个ZI组成,并且RO的load region和execution region相同,那么只需要COPY RW区到RAM,然后再RW区后面创建ZI区,只部分可以用汇编代码自己实现。当然库里的__main函数就包含这些功能,但是如果不用__main,那就要自己写这部分了。

何为简单的分散加载?

MDK的HELP文档里有很详细的说明。

首先编译器设置要改

要是勾了,编译器要报错,问你启动库函数找不到。

勾了就是使用默认的分散加载描述文本,.SCT文件是不让改的,所以想改就不要勾。 在这里插入图片描述

STM32F4的sct文件理解

https://blog.csdn.net/weixin_34008805/article/details/92955664?ops_request_misc=&request_id=&biz_id=102&utm_term=stm32%20%E4%BD%BF%E7%94%A8%20sct%E6%96%87%E4%BB%B6%E5%90%AF%E5%8A%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-92955664.142v68control,201v4add_ask,213v2t3_control1&spm=1018.2226.3001.4187

我现在的板子是STM32F429,外接了SDRAM,NandFlash,我想用sct文件的主要原因是要用到了nandflash,想把yaffs移植上去,但yaffs里面有大量的malloc,STM32F429的片内sram不足以完成这些malloc,故想到把堆放到SDRAM里面去,因此我的sct文件如下:

LR_IROM1 0x08000000 0x00100000 { ; load region size_region 加载域,起始地址是0x08000000,大小是0x00100000 ER_IROM1 0x08000000 0x00100000 { ; load address = execution address 执行地址,就是链接地址 *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00030000 { ; RW data .ANY (+RW +ZI) } }

ARM_LIB_HEAP 0xC0000000 0x80000 { ; 指定堆栈地址 RW_HEAP 0xC0000000 0x80000 { .ANY (HEAP) } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有